home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 1999 September / Sept 99, disk1=APC491.iso / workshop / c / sort.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-04  |  1.4 KB  |  62 lines

  1. // **************************************************************
  2. // sort.cpp
  3. // Example program for Simple C++
  4. //
  5. // (c) 1999 Emmenjay Consulting Pty Ltd                          
  6. //                                                               
  7. // History                                                       
  8. // 04/06/99 MJS  Initial Coding.                                 
  9. //                                                               
  10. // **************************************************************
  11.  
  12. #include <iostream>
  13. #include <cstring>
  14.  
  15. const int LINELEN = 256;
  16. const int MAXLINES = 100;
  17.  
  18. int ReadData( char data[MAXLINES][LINELEN] )
  19. {
  20.   int NumLines = 0;
  21.  
  22.   while (NumLines<MAXLINES && 
  23.          !std::cin.eof()) {
  24.     std::cin.getline( data[NumLines++], LINELEN );
  25.   }
  26.   return NumLines;
  27. }
  28.  
  29. void SortData( char data[MAXLINES][LINELEN], int NumLines )
  30. {
  31.   for (int i=1; i<NumLines; i++) {
  32.     char tmp[LINELEN];
  33.     int j;
  34.  
  35.     strcpy( tmp, data[i] );
  36.     j = i;
  37.     while (j>0 && strcmp(data[j-1],tmp)>0) {
  38.       strcpy( data[j], data[j-1] );
  39.       j--;
  40.     }
  41.     strcpy( data[j], tmp );
  42.   }
  43. }
  44.  
  45. void WriteData( char data[MAXLINES][LINELEN], int NumLines )
  46. {
  47.   for (int i=0; i<NumLines; i++)
  48.     std::cout << data[i] << '\n';
  49. }
  50.  
  51. int main( void )
  52. {
  53.   char data[MAXLINES][LINELEN];
  54.   int NumLines;
  55.  
  56.   NumLines = ReadData( data );
  57.   SortData( data, NumLines );
  58.   WriteData( data, NumLines );
  59.  
  60.   return 0;
  61. }
  62.